package com.gengzp.ops.facade;

import java.util.List;
import java.util.Map;

/**
 * @ClassName NacosFacadeService
 * @Description nacos门面接口
 * @Author gengzp
 * @Date 2025/6/1 19:33
 */
public interface INacosFacadeService {

    /**
     * 根据服务名查询在线实例url
     *
     * @param serviceName 服务名
     * @return 在线实例url
     */
    List<String> searchOnlineInstanceUrlByServiceName(String serviceName);

    /**
     * 获取当前的 nacos 地址
     *
     * @return nacos 地址
     */
    String searchCurrentNacosAddress();

    /**
     * 获取当前 nacos 分组
     *
     * @return 分组 group
     */
    String searchCurrentNacosGroup();

    /**
     * 获取当前 nacos 命名空间
     *
     * @return 命名空间 namespace
     */
    String searchCurrentNacosNamespace();

    /**
     * 根据服务名集合查询nacos中在线的服务地址映射
     *
     * @param serviceNames 服务名集合
     * @return key: 服务名 value: 服务地址集合
     */
    Map<String, List<String>> searchNacosAddressMapByServiceNames(List<String> serviceNames);

}
